/***
 * 对于开发环境：
 * 需要有模块的热更新，完整的source map，并不是每次都要复制
 * public文件内容，不需要对css，js进行压缩
 * **/
const path = require('path')

const merge = require('webpack-merge')
const common = require('./webpack.common')
const CopyWebpackPlugin = require('copy-webpack-plugin')

module.exports = merge(common,{
    //配置模式 development\production\none。
    mode: "development",
    //开发环境使用source-map
    devtool:"source-map",
    //监听文件变化，有变化的时候自动重新编译。使用webpack server的时候会自动启用
    // watch:true,
    // watchOptions:{
    //     aggregateTimeout:1000, //构建延迟，也就是出现更改后多长时间后进行编译，单位是ms。
    //     ignore: /node_modules/,
    //     poll:1000, //每秒检查一次变动
    // },
    devServer:{
        hot:true, //启动热模块更新
        port:8080, //访问接口
        overlay:{ //出现错误的时候全屏覆盖，warning的时候不是
            errors:true,
            warnings:false
        },
        contentBase: './public',
        open:true //运行之后自动打开浏览器
    },
    plugins:[
        //复制public的插件
        new CopyWebpackPlugin({
            //忽略index.html文件
            // patterns: ['public/favicon.ico',]
            patterns: [{
                from: path.join(__dirname, 'public'),
                globOptions: {
                    ignore: ['index.html']
                },
                force:false
            }]
        }),
    ]
})